package com.jn.hilt.module;

import android.content.Context;
import android.content.SharedPreferences;
import com.jn.hilt.qualifier.AppQualifier;
import javax.inject.Singleton;

import dagger.Module;
import dagger.Provides;
import dagger.hilt.InstallIn;
import dagger.hilt.android.qualifiers.ApplicationContext;
import dagger.hilt.components.SingletonComponent;

// 模块类：提供应用级依赖
@Module
// 安装在 SingletonComponent 中，表明依赖是应用级单例
@InstallIn(SingletonComponent.class)
public class AppModule {
    // 提供 SharedPreferences 实例（系统类，无法修改构造方法）
    @Singleton
    @Provides
    public SharedPreferences provideSharedPreferences(
            @ApplicationContext Context context) {// Hilt 提供的应用上下文
        return context.getSharedPreferences("hilt_prefs", Context.MODE_PRIVATE);
    }

    // 提供自定义配置参数
    @Provides
    public String provideAppVersion() {
        return "1.0.0";
    }

    //同一类型的对象，写两个会报错
//    @Provides
//    public String provideAppName() {
//        return "HiltDemo---2025";
//    }

    // 提供 int 类型的 maxUserCount
    @AppQualifier.MaxUserCount
    @Provides
    public int provideMaxUserCount() {
        return 100; // 具体的 int 值
    }
}
